---
title: npm-search
section: 1
description: Search for packages
github_repo: npm/cli
github_branch: release/v6
github_path: docs/content/commands/npm-search.md
redirect_from:
  - /cli-documentation/v6/cli-commands/npm-search
  - /cli-documentation/v6/cli-commands/search
  - /cli-documentation/v6/commands/npm-search
  - /cli-documentation/v6/commands/search
  - /cli-documentation/v6/npm-search
  - /cli-documentation/v6/search
  - /cli/v6/cli-commands/npm-search
  - /cli/v6/cli-commands/search
  - /cli/v6/commands/search
  - /cli/v6/npm-search
  - /cli/v6/search
---

### Synopsis

```bash
npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]

aliases: s, se, find
```

### Description

Search the registry for packages matching the search terms. `npm search` performs a linear, incremental, lexically-ordered search through package metadata for all files in the registry. If color is enabled, it will further highlight the matches in the results.

Additionally, using the `--searchopts` and `--searchexclude` options paired with more search terms will respectively include and exclude further patterns. The main difference between `--searchopts` and the standard search terms is that the former does not highlight results in the output and can be used for more fine-grained filtering. Additionally, both of these can be added to `.npmrc` for default search filtering behavior.

Search also allows targeting of maintainers in search results, by prefixing their npm username with `=`.

If a term starts with `/`, then it's interpreted as a regular expression and supports standard JavaScript RegExp syntax. A trailing `/` will be ignored in this case. (Note that many regular expression characters must be escaped or quoted in most shells.)

### A Note on caching

### Configuration

#### description

- Default: true
- Type: Boolean

Used as `--no-description`, disables search matching in package descriptions and suppresses display of that field in results.

#### json

- Default: false
- Type: Boolean

Output search results as a JSON array.

#### parseable

- Default: false
- Type: Boolean

Output search results as lines with tab-separated columns.

#### long

- Default: false
- Type: Boolean

Display full package descriptions and other long text across multiple lines. When disabled (default) search results are truncated to fit neatly on a single line. Modules with extremely long names will fall on multiple lines.

#### searchopts

- Default: ""
- Type: String

Space-separated options that are always passed to search.

#### searchexclude

- Default: ""
- Type: String

Space-separated options that limit the results from search.

#### searchstaleness

- Default: 900 (15 minutes)
- Type: Number

The age of the cache, in seconds, before another registry request is made.

#### registry

- Default: https://registry.npmjs.org/
- Type: url

Search the specified registry for modules. If you have configured npm to point to a different default registry, such as your internal private module repository, `npm search` will default to that registry when searching. Pass a different registry url such as the default above in order to override this setting.

### See Also

- [npm registry](/cli/v6/using-npm/registry)
- [npm config](/cli/v6/commands/npm-config)
- [npmrc](/cli/v6/configuring-npm/npmrc)
- [npm view](/cli/v6/commands/npm-view)
